﻿package app.view.components.sections.expo.max 
{
	import app.model.types.SectionType;
	import app.model.vo.SectionVO;
	import app.view.components.buttons.GlamurBtnBase;
	import app.view.components.calendar.CalendarVO;
	import app.view.components.header.HeadMarkerBase;
	import app.view.components.sections.LabeledSectionBase;
	import app.view.events.UIEvent;
	import flash.events.MouseEvent;
	
	/**
	 * СЕКЦИЯ С КАЛЕНДАРЕМ
	 * п 1.1.5.2
	 * @author firsoff maxim, snzflash.com, tel: +79222345364, skype: maxim.firsoff
	 */
	public class ExpoCalendarMBase extends LabeledSectionBase
	{
		public var programm_Btn:GlamurBtnBase;
		public var calendar:CalendarControl;
		private var _todayEvents:CalendarVO;
		
		public function ExpoCalendarMBase() 
		{
			super();
		};
		
		private function setEvents():void
		{
			programm_Btn.addEventListener(MouseEvent.CLICK, onClickProgrammBtn);
			calendar.addEventListener(UIEvent.CALENDAR_CHANGE, onCalendarChange);
			//
		};
		
		private function onCalendarChange(e:UIEvent):void 
		{
			removeEvents();
			
			var obj:SectionVO = new SectionVO();
			obj.id = SectionType.PAGE_EXPO_TODAY_PROGRAMM;
			obj.currentId = id;
			obj.params = e.data;
			
			var ev:UIEvent = new UIEvent(UIEvent.SECTION_CHANGE);
			ev.data = obj;
			dispatchEvent(ev);
			//trace( 'onCalendarChange : ' + e.data);
		};
		
		private function removeEvents():void
		{
			programm_Btn.removeEventListener(MouseEvent.CLICK, onClickProgrammBtn);
			
		}
		
		
		override public function onDestroy():void 
		{
			// чистим что тут есть и вызываем супера
			removeEvents();
			programm_Btn.destroy();
			
			super.onDestroy();
		};
		
		override public function get data():Object { return _data; };
		
		override public function set data(value:Object):void 
		{
			super.data = value;
			calendar.data = value;
			setParamHead(HeadMarkerBase.BGD_RED);
			//trace('ExpoCalendarM!!!', _data.data);
			programm_Btn.setLang(_data.lang);
			//calendar
			setEvents();
			
			// определяем если есть данные на сегодня то кнопка будет видна
			_todayEvents = calendar.getTodayItem();
			//trace('_todayEvents : ' + _todayEvents);
			if ( _todayEvents.data && _todayEvents.data.event) programm_Btn.visible = true;
			programm_Btn.visible = false;
			//programm_Btn.visible = Boolean(_todayEvents);
		};
		
		
		/**
		 * переходим на сегодня или на выбранный день
		 * @param	e
		 */
		private function onClickProgrammBtn(e:MouseEvent):void 
		{
			removeEvents();
			
			var obj:SectionVO = new SectionVO();
			obj.id = SectionType.PAGE_EXPO_TODAY_PROGRAMM;
			obj.currentId = id;
			obj.params = {today :  _todayEvents, selected : _todayEvents};
			
			var ev:UIEvent = new UIEvent(UIEvent.SECTION_CHANGE);
			ev.data = obj;
			dispatchEvent(ev);
		}
		
	}

}